// 下面是冒泡排序
function bubbleSort(arr) {
  let len = arr.length;
  for (let i = 0; i < len - 1; i++) {
    for (let j = 0; j < len - 1 - i; j++) {
      if (arr[j] > arr[j + 1]) {
        // 交换
        [arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
      }
    }
  }
  return arr;
}

// 下面是相应的测试用例
bubbleSort([5, 3, 8, 4, 2]); // [2, 3, 4, 5, 8]
bubbleSort([1, 2, 3, 4, 5]); // [1, 2, 3, 4, 5]
bubbleSort([5, 4, 3, 2, 1]); // [1, 2, 3, 4, 5]

// 下面是选择排序
function selectionSort(arr) {
  let len = arr.length;
  for (let i = 0; i < len - 1; i++) {
    let minIndex = i;
    
    for (let j = i + 1; j < len; j++) {
      if (arr[j] < arr[minIndex]) {
        minIndex = j;
      }
    }
    if (minIndex !== i) {
      // 交换
      [arr[i], arr[minIndex]] = [arr[minIndex], arr[i]];
    }
  }
  return arr;
}

// 下面是选择排序的测试用例
selectionSort([5, 3, 8, 4, 2]); // [2, 3, 4, 5, 8]
selectionSort([1, 2, 3, 4, 5]); // [1, 2, 3, 4, 5]
selectionSort([5, 4, 3, 2, 1]); // [1, 2, 3, 4, 5]
